我正在尝试通过Web应用程序设置asp.net核心。但是我遇到了错误。我进行了一些谷歌搜索,发现了可能的解决方案,例如
[有关使用Azure AD B2C制作ASP.NET Core Web应用程序的文档] (https://azure.microsoft.com/de-de/resources/samples/active-directory-b2c-dotnetcore-webapp/)和此.NETCore B2C sample
在示例解决方案中,appsettings.json
文件还具有Api。
"AzureAdB2C": {
"ClientId": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6",
"Tenant": "fabrikamb2c.onmicrosoft.com",
"SignUpSignInPolicyId": "b2c_1_susi",
"ResetPasswordPolicyId": "b2c_1_reset",
"EditProfilePolicyId": "b2c_1_edit_profile",
"RedirectUri": "http://localhost:5000/signin-oidc",
"ClientSecret" : "v0WzLXB(uITV5*Aq",
"ApiUrl": "https://fabrikamb2chello.azurewebsites.net/hello",
"ApiScopes": "https://fabrikamb2c.onmicrosoft.com/helloapi/demo.read"
}
但是我不明白为什么我需要Api。我是否只需要在Azure AD B2C Tennant中设置API?还是在Api中也需要一些代码?
有没有一个很好的例子可以用来帮助您理解主题?
问候 斯蒂芬
答案 0 :(得分:1)
我建议阅读.NetCore webapp sample上的自述文件,并首先按原样运行示例。
然后,按照[OPTIONAL]
步骤进行操作,这些步骤说明了示例的工作方式以及如何使用您自己的B2C租户和策略进行设置。该示例调用了API "https://fabrikamb2chello.azurewebsites.net/hello"
,因此这里需要register your own Web API with B2C,以便您可以定义请求访问令牌的范围。
然后,将您的应用程序坐标替换为示例中的坐标(例如Tenant,ClientId,Policy,ClientSecret,ApiUrl和ApiScopes)。最后,您应该能够重建并运行该解决方案。
答案 1 :(得分:0)
感谢珍妮的帮助。
在
的第4步[可选]步骤4:创建自己的Web API此示例在以下位置调用API https://fabrikamb2chello.azurewebsites.net的代码与 带有Azure AD B2C的示例Node.js Web API。您需要自己的API 或至少需要在Azure AD中注册Web API B2C,以便您可以定义单个页面的范围 应用程序将请求访问令牌。您的Web API注册 应包含以下信息:启用Web App / Web API 设置为您的应用程序。将回复URL设置为适当的 示例中指示的值,或者仅在执行操作时提供任何URL 网络api注册,例如https://myapi。确保你 还提供了一个AppID URI,例如demoapi,它用于 构造在单页中配置的范围 应用程序的代码。 (可选)创建应用后,打开 应用程序的“发布范围”边栏选项卡,并添加所需的任何其他范围。复制 AppID URI和“发布的范围”值,因此您可以在 您的应用程序的代码。
我可以在Azure B2C Tennant中设置WebAPI。 API的代码是什么?还是在Azure B2C租户中设置WebAPI很好吗?
答案 2 :(得分:0)
感谢您的帮助。现在,运行与Azure AD B2C的身份验证。 我如何在控制器内部检查用户是否已登录? 用户登录后,请执行一些操作。如果用户未登录,则仅显示登录按钮。 我知道如何在视图中而不是在控制器中检查它。