如何解决从移动应用程序上的Web应用程序登录用户帐户
因此,我有一个.NET MVC Web应用程序,该应用程序使用设置为登录我的用户的标准AccountController / LoginViewModel:
await SignInManager.PasswordSignInAsync(model.Email,model.Password,model.RememberMe,shouldLockout: false);
string response;
switch (result)
{
case SignInStatus.Success:
//logged in
case SignInStatus.LockedOut:
//locked out
case SignInStatus.RequiresVerification:
//verification
case SignInStatus.Failure:
default:
//fail message
}
现在,我正在使用Xamarin Forms构建一个移动应用程序,该应用程序使用我的Web应用程序上的帐户,因此它们必须登录。我对目前应如何实现此过程感到非常困惑,但这是在得出结论后我想出什么,我需要使用Web API / Web Service来做到这一点。
我已经在.NET MVC Web应用程序上创建了一个Api控制器,在这个Api控制器内部,我基本上具有相同的代码:
[Route("getuserdetails")]
[HttpGet]
public async Task<string> getuserdetails(string username,string password)
{
var result = await SignInManager.PasswordSignInAsync(username,password,false,shouldLockout: false);
string response;
switch (result)
{
case SignInStatus.Success:
return response = "Success";
case SignInStatus.Failure:
default:
return response = "Failure";
}
}
在我的Xamarin Forms移动应用程序中,我正在使用以下RESTSharp代码访问api:
public static IRestResponse GetUserDetails(User user)
{
RestClient client = new RestClient();
client.BaseUrl = new Uri("http://mybaseurl.com/");
RestRequest request = new RestRequest();
request.Resource = "api/API/getuserdetails";
request.AddParameter("username",user.Username);
request.AddParameter("password",user.Password);
return client.Execute(request);
}
这可以正常工作,当我在移动应用上测试登录表单时,会返回正确的消息。
这是解决此问题的正确方法吗?我相信我在某处缺少授权/认证层,对我来说似乎并不安全?谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。