小编bad*_*mar的帖子

使用REST api的Guid令牌进行基本身份验证,而不是用户名/密码

概观

我正在使用带有REST API的PhoneGap为后端开发移动应用程序.REST API不会被第三方开发人员使用,但将是特定于应用程序的,因此不需要实现oAuth.因此,我打算使用基本身份验证,在用户输入用户名/密码以访问API资源.所有API通信都将在SSL上.

令牌的基本身份验证

我宁愿在第一次登录请求时验证用户名/密码并发回GUID令牌,而不是让应用程序存储用户名/密码并随每次请求发送给API.客户端存储此GUID令牌,并通过Authorization标头将每个请求发送回API,如下所示:

授权:基本e1d9753f-a508-46cc-a428-1787595d63e4

在服务器端,用户名/ GUID组合将存储在服务器上,并带有到期日期和设备设置.这将允许跟踪用户登录的设备数量,以及Guid到期后会话到期.

这种方法听起来合理安全吗?

authentication rest oauth asp.net-web-api

31
推荐指数
2
解决办法
3万
查看次数

使用ASP.Net Web API的多部分表单POST

我有一个POST ASP.Net Web Api方法,它改编自ASP.NET Web API RTM中的异步文件上传指南.

我遇到了故障任务问题,在第一个请求被触发并完成后触发了所有请求.

这是一个场景:我有一个示例页面,它将文件和其他参数一起发布到Web API Post方法.它第一次工作正常,文件上传.但是,所有后续请求都会在故障状态下结束任务.我得到"MIME多部分流的意外结束.MIME多部分消息不完整."任何想法为什么?

下面粘贴的是我的Post方法的源代码,示例html表单和Aggregate Exception.

    public Task<HttpResponseMessage> Post([FromUri]string memberNumber)
    {
        // Check if the request contains multipart/form-data.
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        string root = HttpContext.Current.Server.MapPath("~/App_Data");
        var provider = new MultipartFormDataStreamProvider(root);

        // Read the form data and return an async task.
        var task = Request.Content.ReadAsMultipartAsync(provider).
            ContinueWith(t =>
            {
                if (t.IsFaulted || t.IsCanceled)
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception));
                }

                return Request.CreateResponse(HttpStatusCode.OK, new MyModel());
            });

        return task;
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用这样的示例表单来触发此web api: …

.net asp.net file-upload multipartform-data task-parallel-library

9
推荐指数
1
解决办法
2万
查看次数