ted*_*ear 3 api dotnetopenauth steam
我试图通过DotNetOpenAuth为我的网站进行蒸汽登录工作.
但是查看文档中的示例并没有让我知道如何使其工作.
这是我到目前为止所做的:
1)将dotnetopenauth参考文件添加到\ bin和配置中
2)在数据库中添加了一个唯一的用户字段,用于从DotNetOpenAuth返回的响应.
所以继承我的问题
如何使用DotNetOpenAuth检索蒸汽ID?
我在php中找到了一些例子:http: //forums.steampowered.com/forums/showthread.php?t = 1430511
小智 7
当你包含正确的DotNetOpenAuth时,应该这样做.
这是您通常会在"登录"页面中放入的代码,第一个代码是否检查我们是否有来自Steam的响应并处理响应.
else部分设置请求并将用户重定向到Steam - 一旦用户登录了Steam,steam将重定向回此页面.
与其他开放式身份验证提供程序不同,Steam不会通过向请求发送声明请求来提供其他用户信息(电子邮件等) - 它只会在response.ClaimedIdentifier中提供URL,该URL是包含用户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();
}
}
}
Run Code Online (Sandbox Code Playgroud)