我有一个网站,用户上传大文件。为了保持站点响应,我将上传部分与主要部分分开。现在有两个网站有两个不同的应用程序池,但两个应用程序池都使用相同的用户身份来运行。问题是现在用户必须首先登录主站点,并且为了上传他们必须再次登录! 如何自动登录已登录主站点的用户?
我正在使用ASP.NET MVC,但在Windows Server 2016(IIS 10)上使用旧ASP.NET成员身份,这是我的web.config:
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="NewsDb" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="3" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
答案 0 :(得分:0)
在不同的网站上分享表单身份验证,您需要确保您的网站在同一主域下,否则您将需要实现大量代码
检查web.config中的<authentication>
节点
为您的主网站提供登录页面
<authentication mode="Forms">
<forms loginUrl="login.aspx" name="{your_auth_cookie_name}" timeout="120" slidingExpiration="true" domain=".yourdomain.com" enableCrossAppRedirects="true"/>
</authentication>
上传网站
<authentication mode="Forms">
<forms loginUrl="https://mainsite/login.aspx" name="{your_auth_cookie_name}" timeout="120" slidingExpiration="true" domain=".yourdomain.com" enableCrossAppRedirects="true"/>
</authentication>
如果您在不同的服务器上部署了您的网站,您可能需要统一机器密钥以确保auth cookie的解密是正确的