为什么我的自定义会员资格和角色提供商在本地工作,但部署后失败?
-
25-10-2019 - |
题
我创建了一个自定义会员资格和角色提供商,以利用ASP.NET MVC中内置的身份验证和授权4.在开发应用程序期间一切都顺利进行,直到我尝试将其部署到测试环境中为止。
在Visual Studio中以调试模式启动应用程序非常好。但是,然后我使用Visual Studio的单击部署将应用程序加载到开发机上运行的IIS实例中。我能够将应用程序加载到浏览器中,但是身份验证不再有效。使用提琴手,我看到cookie已发送回,但是我无法访问使用[授权]属性限制的站点的部分。
以下是我的web.config的相关片段。
<membership defaultProvider="PonosMembershipProvider">
<providers>
<clear />
<add name="PonosMembershipProvider" type="Ponos.Identity.PonosMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/Ponos" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
<providers>
<clear />
<add name="DefaultRoleProvider" type="Ponos.Identity.PonosRoleProvider" connectionStringName="DefaultConnection" applicationName="/Ponos" />
</providers>
</roleManager>
此外,我将两个自定义提供商的应用程序名称设置为逻辑,如下所示:
public override string ApplicationName
{
get
{
return "Ponos";
}
set
{
throw new NotImplementedException();
}
}
此外,在将IIS的运行实例附加后,我看到输入的信息通过验证,但是没有访问已限制授权访问的页面。
同样,用于部署的数据库具有与开发数据库相同的值。
为什么提供商在调试环境中运行良好后部署后不工作?
解决方案 2
仅当直接通过其IP访问我的部署服务器时,此问题才显示出来。当我添加一个主机条目将域映射到IP时,然后在我的身份cookie中设置相同的域,问题已解决。
我不确定为什么如果域是IP地址,为什么我无法访问cookie,但这确实解决了问题。
其他提示
“我看到输入的信息通过验证,但是没有访问已限制授权访问的页面。”
似乎是权限问题!
不隶属于 StackOverflow