配置用于 ASP.Net 身份验证的数据库

Posted

技术标签:

【中文标题】配置用于 ASP.Net 身份验证的数据库【英文标题】:Configure db used for ASP.Net Authentication 【发布时间】:2010-09-13 02:24:57 【问题描述】:

我想在我的 asp.net mvc 站点中使用表单身份验证。

我可以使用已经存在的 sql db(在远程服务器上)吗?如何配置站点以使用此数据库进行身份验证?我需要/使用哪些表进行身份验证?

【问题讨论】:

【参考方案1】:

你可以。检查 Windows\Microsoft.NET\Framework\v2.xxx 文件夹中的aspnet_regsql.exe 程序参数,特别是sqlexportonly

创建好需要的表后,可以配置:在web.config文件中创建一个连接字符串,然后设置MemberShipProvider使用这个连接字符串:

  <connectionStrings>
    <add name="MyLocalSQLServer" connectionString="Initial Catalog=aspnetdb;data source=servername;uid=whatever;pwd=whatever;"/>
  </connectionStrings>

<authentication mode="Forms">
  <forms name="SqlAuthCookie" timeout="10" loginUrl="Login.aspx"/>
</authentication>
<authorization>
  <deny users="?"/>
  <allow users="*"/>
</authorization>
<membership defaultProvider="mysqlMembershipProvider">
  <providers>
    <clear/>
    <add name="MySqlMembershipProvider" connectionStringName="MyLocalSQLServer" applicationName="MyAppName" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</membership>

Ps:有一些关于整个概念的非常好的文章here。

【讨论】:

【参考方案2】:

最简单的方法是使用aspnet_regsql.exe应用程序的windows界面。

您可以在 c:\windows\microsoft.net\framework\v2.0.50727 文件夹中找到它。

只需输入aspnet_regsql.exe,它就会打开一个向导,这样你就不需要记住任何命令行开关了。

【讨论】:

以上是关于配置用于 ASP.Net 身份验证的数据库的主要内容,如果未能解决你的问题,请参考以下文章

配置 ASP.NET MVC 以针对 AD 进行身份验证

ASP .NET MVC 中的 Authorize 属性是不是用于身份验证和授权?

asp.net mvc 中的 Google 身份验证 - 无法获取用于 Google 登录的 redirectUrl

在 asp 中用于 Windows 身份验证的简单自定义角色。网?

如何从 ASP.NET Core 2.0 中的自定义中间件请求身份验证

控制器 ASP.net 核心 2.1 中的 Jwt 角色身份验证