关于表单认证的问题

本文关键字:认证 问题 表单 于表单 | 更新日期: 2023-09-27 18:03:55

好的,我有我的web应用程序与这个web。管理用户和角色的配置

<connectionStrings>
  <add name="MySqlConnection" connectionString="" />
 </connectionStrings>
<authentication mode="Forms">
        <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH"/>
    </authentication>
    <authorization>
        <deny users="?" />
    </authorization>

    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
        <providers>
            <clear />
            <add
  name="SqlProvider"
  type="System.Web.Security.SqlMembershipProvider"
  connectionStringName="MySqlConnection"
  applicationName="/"
  enablePasswordRetrieval="false"
  enablePasswordReset="true"
  requiresQuestionAndAnswer="true"
  requiresUniqueEmail="true"
  passwordFormat="Hashed" />
        </providers>
    </membership>

出于安全原因i can't set the connection string在我的web.config。现在我想知道我是否可以在应用程序中以某种方式传递连接到表单身份验证的实例。

注意,我不想在运行时设置连接字符串,我想传递连接的实例

关于表单认证的问题

创建一个类库并在其中创建一个类。该类可以包含如下函数:

public static SqlConnectionStringBuilder GetConnection()
{
    SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
    sqlBuilder.DataSource = @"some string";
    sqlBuilder.Password = @"mypassword";
    sqlBuilder.UserID = @"myuserid";
    //set other properties here.
    return sqlBuilder;
}

现在你可以在你的项目中引用上面的类库了。

你也可以加密你的连接字符串。参考以下文章:

  • 如何加密web.config中的连接字符串
  • Web内部连接字符串加密。在ASP中配置。NET 2.0

像这样?

在运行时设置Membership-Profile-Role提供程序的连接字符串

如果需要为每个用户提供唯一的连接字符串,那么Davide Piras提供的链接就是可行的方法。

如果有一个开放的连接字符串与SQL认证的细节是问题,你可以考虑简单地加密它:https://web.archive.org/web/20211020203213/https://www.4guysfromrolla.com/articles/021506 - 1. - aspx