当您包含正确的 DotNetOpenAuth 时,应该这样做。
这是您通常会放在登录页面中的代码,第一个 if 检查我们是否有来自 Steam 的响应并处理该响应。
else 部分设置请求并将用户重定向到 Steam - 一旦用户登录 Steam,Steam 将重定向回此页面。
与其他开放式身份验证提供程序不同,steam 不会通过发送带有请求的声明请求来提供其他用户信息(电子邮件等) - 它只会在响应中提供一个 URL。ClaimedIdentifier 是一个包含用户 Steam id 的 URL在最后。
如果需要,您将不得不进行字符串操作以仅获取 ID。
protected void Page_Load(object sender, EventArgs e)
{
var openid = new OpenIdRelyingParty();
var response = openid.GetResponse();
if (response != null)
{
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
// do success
var responseURI = response.ClaimedIdentifier.ToString();
//"http://steamcommunity.com/openid/id/76561197969877387"
// last part is steam user id
break;
case AuthenticationStatus.Canceled:
case AuthenticationStatus.Failed:
// do fail
break;
}
}
else
{
using (OpenIdRelyingParty openidd = new OpenIdRelyingParty())
{
IAuthenticationRequest request = openidd.CreateRequest("http://steamcommunity.com/openid");
request.RedirectToProvider();
}
}
}