我是网络开发的新手,我正在尝试实现一个包含两个部分的Web应用程序:
我对MVC越来越熟悉,但网络服务方面却让我失望。
目前,我正在WebApp前端使用模板MVC项目中的ASP.NET Identity(带有一些额外的用户属性),以允许用户创建帐户并管理数据。这个前端界面运行良好。
我遇到的问题是尝试通过SOAP ASMX服务对用户进行身份验证时。
例如:
[WebMethod]
public string[] authenticate(string strUserName, string strPassword)
{
var result = await HttpContext.Current.GetOwinContext().Get<ApplicationSignInManager>().PasswordSignInAsync(strUserName, strPassword, false, false);
if (result == SignInStatus.Success)
{
// Do something useful
}
}
在登录行,执行只是停止并返回。没有调试信息,也没有异常。老实说,我还没有完全掌握ASP.NET身份,也没有在MVC应用程序中提供模板,我正在慢慢学习。
从服务角度来看,如果用户成功登录,则会调用其他WebMethods来访问SQL Server数据库并访问用户已配置的特定操作。
或者,是否有更好的方法在MVC应用程序中实现此SOAP Web服务?在我看来,Web API仅支持RESTful约定,因此在我的情况下不起作用。
答案 0 :(得分:0)
我能够弄明白我的问题。事实证明特定的服务方法不能与异步一起使用,因此当我调用我的异步方法时,它将返回一个空白结果,从而隐藏实际发生的事情。在这种情况下,将调用切换为同步解决了问题。