当前位置: 首页 > 知识库问答 >
问题:

如何转换多个ASP。NET web窗体应用程序使用窗体身份验证(成员身份)指向新的。NET核心身份站点,用于登录

訾凯歌
2023-03-14

首先,我想道歉,因为这是我的第一篇文章,我甚至不知道如何正确表达我的问题。

事情是这样的:

我有几个遗留的ASP. NET Web表单应用程序(. NET Framework 4.6.1)内置在VB. NET中,目前使用ASP. NET会员提供程序和表单身份验证。基本上,应用程序A、B和C重定向到应用程序D上的登录屏幕,用户在其中登录,然后被重定向回来。我相信这可以通过表单身份验证实现,其中所有应用程序共享相同的机器密钥在Web.config.

我创建了一个新的ASP。NET Core MVC应用程序(.NET Core 3.1)使用ASP。NET Identity取代app D,后者将来还将使用IdentityServer4支持第三方客户端的单点登录。这个新的SSO应用程序有新的用户屏幕来管理用户/角色等,并且作为一个独立的站点工作得很好。

如何让应用程序A、B和C正确重定向到SSO,以便用户可以获得身份验证并被重定向回来?这里的正确方法是什么?需要哪些步骤?

我花了数周时间在网上浏览教程,学习IdtyServer4,创建使用OWIN交换令牌等的新的现代MVC网站,一切都很好。我还看到了有关将ASP. NET成员资格转换为OWIN或身份的教程,但这真的是我需要的吗?我有一个已经在使用身份的新网站,所以我不应该对吗?

思想?

共有1个答案

袁泰
2023-03-14

我设法弄明白了。使用新的ASP。NET Web应用程序(.NET Framework)-Visual Basic with。NET Framework 4.6.1名为VBWebApp,我执行了以下操作以使其连接到我的IdentityServer4实例:

>

  • 安装软件包

    安装Microsoft软件包。奥温。主办SystemWeb安装包Microsoft。奥温。安全Cookies安装软件包Microsoft。奥温。安全OpenIdConnect

    添加启动。vb

    导入Microsoft。奥温。扩展导入Microsoft。奥温。安全Cookie导入Microsoft。奥温。安全OpenIdConnect导入Owin

    公共类启动公共子配置(ByVal app As IAppBuilder)弱化设置As NameValueCollection=ConfigurationManager。应用设置

         app.UseCookieAuthentication(New CookieAuthenticationOptions With {
             .AuthenticationType = "cookie"
         })
    
         app.UseOpenIdConnectAuthentication(New OpenIdConnectAuthenticationOptions With {
             .SignInAsAuthenticationType = "cookie",
             .Authority = settings("Authority").ToString(),
             .ClientId = settings("ClientId").ToString(),
             .ClientSecret = settings("ClientSecret").ToString(),
             .RedirectUri = settings("RedirectUri").ToString(),
             .ResponseType = "code",
             .Scope = "openid profile",
             .RedeemCode = True
         })
    
         app.UseStageMarker(PipelineStage.Authenticate)
     End Sub
    

    结束类

    在web中的Configuration tag下添加以下内容。配置

    在系统中添加以下内容。web标记

    在Config.cs中添加以下内容

    新客户端{ClientId=“VBWebApp”,ClientSecrets={new Secret(“Secret”.Sha256())},AllowedGrantTypes=GrantTypes。代码,重定向URI={“https://localhost:44375},PostLogoutRedirectUris={https://localhost:44375“},AllowedScopes=新列表{IdentityServerConstants.StandardScopes.OpenId,IdentityServerConstants.StandardScopes.Profile,}}”

    还有更多的工作要做,但至少现在我已经具备了让应用程序A、B和C的身份验证工作正常运行所需的步骤。

  •  类似资料:
    • 我有一个传统的Asp。Net/MVC/Razor WebApp,使用表单身份验证。 现在,由于一些用户拥有Azure广告帐户,我添加了一个特殊的广告登录按钮以及常用的代码,以使其正常工作 使用按钮登录后,我在网址中进入以下内容: 因此,在我的网站。我评论道: 在这个阶段,Azure AD身份验证工作正常!但是这样做,我打破了原来的窗体认证:-( 只是打电话而已 这是不够的:我仍然得到重定向到Azu

    • 本文向大家介绍ASP.NET窗体身份验证详解,包括了ASP.NET窗体身份验证详解的使用技巧和注意事项,需要的朋友参考一下 asp.net的身份验证类型如下:   在我们实际的工作中,froms身份验证用的还是比较多的,我们接下来详细说一下: 做为web开发的程序员,我想登录窗体是接触的太多了。可是,我发现有的程序员在对身份验证的时候是把验证的用户名保存在一个session里的,然后进入系统的每个

    • 成员身份验证 PDF版下载 OAuth2简介 如流平台提供了OAuth的授权登录方式,可以使如流客户端(移动端或者桌面端内嵌打开)打开的网页获取成员的身份信息,从而免去登录环节。 企业应用中的URL链接(包括自定义菜单或者消息中的链接),均可通过OAuth2.0验证接口来获取成员的身份信息(UserId)。 第一步:构造网页授权链接 获取用户在如流客户端打开应用(或者链接)时的用户身份,如流提供两

    • 我的webapp是用。NET核心并部署在Azure中。我已启用Azure应用程序服务身份验证,并将其配置为使用Azure Active Directory。当我访问webapp时,我确实会被重定向到正确的登录页面。登录后,我可以浏览到endpoint。对我进行身份验证,并查看是否存在针对我的用户的声明。我还可以验证下面的请求标头是否存在值: X-MS-TOKEN-AAD-ID-TOKEN X-MS

    • 我正在开发ASP NET核心Web API,对认证方式的选择感到困惑。我曾经应用默认的Asp Net身份验证,但最近我知道了JWT。因此,我几乎像本文中一样实现了身份验证:https://stormpath.com/blog/token-authentication-asp-net-core。但是我不能理解这个JWT的好处。通过简单的Asp Net身份认证,我不关心令牌存储等,我只需要用signI

    • 我的问题是,我们有一组运行SiteMinder但非常糟糕的遗留代码。它允许IIS匿名并避免使用Active Directory。 我们正在重建此应用程序,并希望将SiteMinder与IIS和集成。净额4.0。我知道我可以构建自己的安全框架,无需用户名和密码即可完成所有工作(因为我们不希望SiteMinder提供),但我想知道是否有办法使用内置的Windows身份验证(窗体或Windows)与Si