Некоторое время назад мы нашли ответ:
1.) вставьте свой ключ из туториала сюда:
var options = new SteamAuthenticationOptions
{
ApplicationKey = "Your API Key",
Provider = new OpenIDAuthenticationProvider // Steam is based on OpenID
{
OnAuthenticated = async context =>
{
// Retrieve the user's identity with info like username and steam id in Claims property
var identity = context.Identity;
}
}
};
app.UseSteamAuthentication(options);
2.) Мы обнаружили, что steam сохраняет идентификатор steam пользователя в таблице базы данных под названием: «AspNetUserLogins», ключ провайдера внутри этой таблицы представляет собой URL-адрес, состоящий из нескольких частей. Например:
http://steamcommunity.com/openid/id/here-users-steamid
Нам нужен только SteamID пользователя, поэтому мы разделим его на шаге 3.
3.) Сделать контроллер, например: SteamController. Здесь мы собираемся добавить общедоступную строку:
public string GetSteamID()
{
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new Steam.Models.ApplicationDbContext()));
var CurrentUser = manager.FindById(User.Identity.GetUserId());
if (User.Identity.Name != "")
{
string url = CurrentUser.Logins.First().ProviderKey;
ViewBag.steamid = url.Split('/')[5]; //here we going to split the providerkey so we get the right part
}
else
{
ViewBag.steamid = "";
}
return ViewBag.steamid;
}
) теперь мы можем добавить кое-что, скажем, мы собираемся добавить информацию о профиле. Перейдите в свой SteamController и добавьте:
[HttpGet]
public ContentResult GetProfile()
{
string url = string.Format("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=addyourkeyhere&steamids={0}", this.GetSteamID());
string result = null;
using (var client = new WebClient())
{
result = client.DownloadString(url);
}
return Content(result, "application/json");
}
обратите внимание, что вы должны добавить свой ключ Steam из шага 1 в URL-адрес.
- ) создайте скрипт с именем: profile.js. Здесь мы собираемся добавить информацию о нашем профиле.
function profilepic() {
$.ajax({
url: 'http://localhost:3365/steam/GetProfile',
dataType: 'json',
success: function (data) {
$.each(data.response.players, function (key, value) {
if ($('.profile')) {
$('.profile').append("<img src='" + value.avatar + "'> <span>" + value.personaname + "</span>")
}
if ($('.profile1')) {
$('.profile1').append("<img src='" + value.avatarfull + "'>")
}
if ($('.username')) {
$('.username').append(value.personaname)
}
console.log(value)
});
}, error: function (httpReq, status, exception) {
console.log(status + " " + exception);
}
});
}
6.) Теперь нам нужно сделать последний шаг, создать представление с классами, например:
<div class="userprofile">
<span class="profile1"></span>
<div class="userdescription">
<h2 class="username"></h2>
</div>
</div>
- ) Я надеюсь, что это поможет некоторым людям, если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!
person
Draity
schedule
07.01.2016