有关表单身份验证的问

时间:2011-07-28 15:14:11

标签: c# asp.net forms-authentication

好的,我的web应用程序使用此web.config来管理用户和角色

<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>

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

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

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

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

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

    return sqlBuilder;
}

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

您还可以加密连接字符串。请参阅这些文章:

答案 2 :(得分:0)

如果每个用户需要一个唯一的连接字符串,那么Davide Piras提供的链接就是您的选择。

如果有一个带有SQL Auth详细信息的打开连接字符串是问题,您可以考虑简单地加密它: http://www.4guysfromrolla.com/articles/021506-1.aspx