1

我在 VS2012 中使用 Web 表单模板并查看 OpenAuth 代码。

我希望在外部登录成功后存储一些外部数据,但是在调试期间无法看到如何在有效外部登录后的代码执行过程中获取登录的用户名 -

ProcessProviderResult - if (OpenAuth.Login(authResult.Provider, authResult.ProviderUserId, createPersistentCookie: false))

CreateAndLoginUser() - if (OpenAuth.Login(ProviderName, ProviderUserId, createPersistentCookie: false))

在这些调用之后,没有 User.Identity.Name 并且用户名尚未经过身份验证,那么我怎样才能获得membershipusername?它似乎是在重定向后登录的(我真的必须在会话中存储一些东西并在重定向后将其插入吗?我认为我做错了)。

OpenAuth上有什么方法。??或等效的我需要调用以获取用户名,以便我可以根据需要存储我的数据。

谢谢

4

1 回答 1

1

User.Identity.Name只会在返回时由 Forms Auth 身份验证提供程序填充(在客户端被重定向之后,正如您所指出的那样)。

但是在鉴权过程中,在重定向前的OpenAuth代码中,用户名只是简单的用AuthenticationResult.UserName(即:ExternalLoginLandingPage.aspx.cs中的authResult.UserName)来表示。

于 2012-11-22T15:14:34.843 回答