如何在ASP.NET应用程序中存储帐户访问信息

时间:2011-03-06 23:44:31

标签: c# asp.net security

我需要将访问设置保存到我的asp.net应用程序内的不同网页。这些设置是这些页面的登录名和密码。它是否足够安全,可以将它们保存在web.config中?

1 个答案:

答案 0 :(得分:0)

是的,您可以在web.config中保存登录信息和密码,并且可以通过加密来保护这些部分。我不知道这是否是最适合这样做的地方,但鉴于你的描述,我认为这是你案件的最佳解决方案。

以下是实施加密的有效方法:What is the proper method for encrypting ASP.NET connetionStrings?

private void ProtectSection(string sectionName,
                                   string provider)
{
    Configuration config =
        WebConfigurationManager.
            OpenWebConfiguration(Request.ApplicationPath);

    ConfigurationSection section =
                 config.GetSection(sectionName);

    if (section != null &&
              !section.SectionInformation.IsProtected)
    {
        section.SectionInformation.ProtectSection(provider);
        config.Save();
    }
}

private void UnProtectSection(string sectionName)
{
    Configuration config =
        WebConfigurationManager.
            OpenWebConfiguration(Request.ApplicationPath);

    ConfigurationSection section =
              config.GetSection(sectionName);

    if (section != null &&
          section.SectionInformation.IsProtected)
    {
        section.SectionInformation.UnprotectSection();
        config.Save();
    }
}

因此,要保护设置,只需使用您要保护的部分和您选择的保护提供程序(通常为DataProtectionConfigurationProviderRSAProtectedConfigurationProvider)调用ProtectSection方法:

ProtectSection("appSettings", "DataProtectionConfigurationProvider");

要取消保护您使用要取消保护的部分调用UnProtectSection方法的部分:

UnProtectSection("appSettings");