Asp.net web.config中的凭据是否允许一次仅访问一个用户?

Asp.net web.config中的凭据是否允许一次仅访问一个用户?,asp.net,login,Asp.net,Login,我有一个非常小的网站,由几个用户使用,在他们填写的表格中共享相同的数据。计划是很快妥善解决这一问题,但目前情况就是这样。 我只是将用户和密码输入与web.config中的一些键进行比较: <configuration> <connectionStrings> <add name="PMIcommConnectionString" connectionString="xxxxxx /> </connectionStrings>

我有一个非常小的网站,由几个用户使用,在他们填写的表格中共享相同的数据。计划是很快妥善解决这一问题,但目前情况就是这样。 我只是将用户和密码输入与web.config中的一些键进行比较:

    <configuration>
  <connectionStrings>
    <add name="PMIcommConnectionString" connectionString="xxxxxx />
  </connectionStrings>
  <appSettings>
    <add key="UserName" value="xxxxxx" />
    <add key="Password" value="xxxxxxx" />
    <add key="Telerik.Skin" value="Windows7" />
  </appSettings>
  <system.web>
    <customErrors mode="On" defaultRedirect="~/Error.aspx" />
    <compilation debug="true" targetFramework="4.5">
      <assemblies>
        .........
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.5" />
    <pages>
      <controls>
        <add tagPrefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI" />
      </controls>
    </pages>
    <httpHandlers>
      ........
    </httpHandlers>
    <httpModules>
      <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" />
      <add name="RadCompression" type="Telerik.Web.UI.RadCompression" />
    </httpModules>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="RadUploadModule" />
      <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" preCondition="integratedMode" />
      <remove name="RadCompression" />
      <add name="RadCompression" type="Telerik.Web.UI.RadCompression" preCondition="integratedMode" />
    </modules>
    <handlers>
      ......
    </handlers>
  </system.webServer>
</configuration>


是的,它可以,每个用户都有自己的会话,但反过来,它取决于您如何实现用户身份验证的服务器端逻辑。是否使用表单身份验证?

是的,它可以,但您希望有一种方法将它们链接在一起

<add key="JON-Username" value="JON" />
<add key="JON-Password" value="jonspassword" />
<add key="MMC-Username" value="MMC" />
<add key="MMC-Password" value="mccspassword" />

显然,您需要编写服务器端逻辑,以便它知道如何为用户名获取正确的密钥

或者,你可以这样做

<add key="JON" value="jonspassword" />
<add key="MMC" value="mmcspassword" />

但这样做的缺点是,如果您想使用任何其他AppSettings,您无法区分哪些是用于其他设置的,哪些是用于凭据的,这就是我推荐第一种方法的原因


话虽如此,我的首要建议是使用适当的数据库来存储此类信息,并在站点内提供管理视图以配置谁有访问权限。

好的,也许您可以使用此系统来处理对网站“私有”区域的访问,是的,您可以通过以下方式在appsetting中轻松检索密钥:

string jonUsername = WebConfigurationManager.AppSettings["JON-Username"];
string jonPassw = WebConfigurationManager.AppSettings["JON-Password"];

if(myUsernameInputfield.Text == jonUsername && myPasswInputfield.Text == jonPassw)
 {
   // ok this guy have the right to access to my page
 }
比较用户插入的值的步骤


如果您愿意这样做,也许您还应该

missig实现细节,以提供完整的解决方案answer@Infer-在上,我在问题中添加了web.config。实际上,web.config中没有表单验证。Borys,我在问题中添加了web.config。如果我需要添加一种身份验证的形式,你能给我一些建议吗?Thanks@Nullbyte根据您的评论,您不明白什么是表单身份验证。请看。