通过cookie共享ASP.NET webforms和MVC身份验证

通过cookie共享ASP.NET webforms和MVC身份验证,第1张

概述好像我的问题的部分答案分布在多个帖子上,但是把它放在一起对我来说到目前为止还没有用,所以我希望当这篇文章得到解答时它会形成更完整的指南 问题 我有一个ASP.NET webforms应用程序(W1),我想在一段时间内开始升级到单独的MVC应用程序(M1).包含W1的解决方案已升级到4.5,并且已在解决方案中创建了M1. W1使用ASP.Net成员资格框架. 测试用例 在M1中,我将Authoriz 好像我的问题的部分答案分布在多个帖子上,但是把它放在一起对我来说到目前为止还没有用,所以我希望当这篇文章得到解答时它会形成更完整的指南

问题

我有一个ASP.NET webforms应用程序(W1),我想在一段时间内开始升级到单独的MVC应用程序(M1).包含W1的解决方案已升级到4.5,并且已在解决方案中创建了M1. W1使用ASP.Net成员资格框架.

测试用例

在M1中,我将Authorize属性添加到HomeController中的About页面

[授权]
公共ActionResult关于()

我在M1中添加了一个指向about页面的链接,该链接源自W1中需要用户登录的页面.

期待

我希望用户能够登录W1,点击M1关于页面的链接并自动登录到M1.

配置

步骤1

我使用here概述的方法从W1中提取了valIDationKey和decryptionKey.虽然这似乎是一个逻辑步骤,但我不确定它是否必需,因为不同的键仍然允许用户登录到W1.

第2步

根据信息here和here,经过大量调试后,我修改了项目的Web.config文件部分,如下所示;

对于W1:

<system.web>      <authentication mode="Forms">          <forms name="WRSAUTH"                 loginUrl="~/Account/Login.aspx"                 defaultUrl="Default.aspx"                 protection="All"                 timeout="60"                 path="/"                 domain=".localhost"                 requireSSL="false"                 slIDingExpiration="true"                 cookieless="Usecookies"                 enableCrossAppRedirects="false" />        </authentication>        <machineKey valIDationKey="<ValIDationKey>"                    decryptionKey="<DecryptionKey>"                    valIDation="SHA1"                    decryption="AES"/><compilation deBUG="true" targetFramework="4.5">     <httpRuntime maxRequestLength="12288" /></system.web>

对于M1:

<system.web>    <authentication mode="Forms">      <forms name="WRSAUTH"              loginUrl="~/Account/Login"              defaultUrl="~/"              protection="All"              timeout="60"              path="/"              domain=".localhost"              requireSSL="false"                        slIDingExpiration="true"             cookieless="Usecookies"              enableCrossAppRedirects="false"/>    </authentication>    <machineKey valIDationKey="<ValIDationKey>"                 decryptionKey="<DecryptionKey>"                 valIDation="SHA1"                 decryption="AES"/>    <compilation deBUG="true" targetFramework="4.5"/>    <httpRuntime targetFramework="4.5"/>  </system.web>  <system.webServer>    <modules>      <!--<remove name="FormsAuthentication"/>-->    </modules>  </system.webServer>

当前状态

当点击W1中以M1为目标的链接时,用户未获得授权并显示登录屏幕.

我在配置中缺少什么?

解决方法 最后去上班吧!

1)不能在本地使用localhost或.localhost设置为域

2)在W1中需要将属性targetFramework =“4.5”添加到httpRuntime

3)在W1中需要添加< add key =“ValIDationSettings:UnobtrusiveValIDationMode”value =“None”/>在AppSettings节点内(标记)

希望我花时间发布这个问题和答案有助于某人.我在很多帖子中找到了这个解决方案的部分,但这将它们全部组合在一起.

总结

以上是内存溢出为你收集整理的通过cookie共享ASP.NET webforms和MVC身份验证全部内容,希望文章能够帮你解决通过cookie共享ASP.NET webforms和MVC身份验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1104187.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存