MVC如何从控制台应用程序调用授权的动作方法

时间:2016-10-20 08:11:18

标签: c# asp.net-mvc console-application

我需要从控制台应用程序触发mvc方法,所有方法都在授权下并需要登录。

经过一番搜索,我发现了这个 How to authenticate in an ASP.NET MVC application from a console application
这与我的问题非常相似,
有人提到在调用所需方法之前,需要登录,然后使用身份验证cookie向所需方法发送请求。

我正在使用表单身份验证

val res = df
  .withColumn("alphabets",  regexp_extract('Col4,"(^[A-z|]+)?",1))
  .withColumn("digits",     regexp_extract('Col4,"^([A-z|]+)?;?(\\d+)?;?(0x.*)?$",2))
  .withColumn("hexadecimal",regexp_extract('Col4,"^([A-z|]+)?;?(\\d+)?;?(0x.*)?$",3))
  .withColumn("letter",
     explode(
       split(
         coalesce('alphabets,lit("")),
         "\\|"
       )
     )
   )


res.show    

+----+----+----+--------------+---------+------+-----------+------+
|Col1|Col2|Col3|          Col4|alphabets|digits|hexadecimal|letter|
+----+----+----+--------------+---------+------+-----------+------+
|  A1|  11|  B2|a|b;1;0xFFFFFF|      a|b|     1|   0xFFFFFF|     a|
|  A1|  11|  B2|a|b;1;0xFFFFFF|      a|b|     1|   0xFFFFFF|     b|
|  A1|  12|  B1|             2|     null|     2|       null|      |
|  A2|  12|  B2|      0xFFF45B|     null|  null|   0xFFF45B|      |
+----+----+----+--------------+---------+------+-----------+------+

我的代码(在控制台应用程序上)

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

我的登录操作

  private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {
        Console.WriteLine("Get authentication cookie");

        var request = (HttpWebRequest)WebRequest.Create("http://localhost:50709/Account/Login");

        var postData = "UserEmail=Test@gmail.com&Password=P@ssW0rd";
        var data = Encoding.ASCII.GetBytes(postData);

        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = data.Length;

        using (var stream = request.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }



        var response = (HttpWebResponse)request.GetResponse();

        var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

    }

我的回复中不包含任何cookie数据(cookie返回空)

enter image description here

我做错了什么? 感谢任何帮助。

0 个答案:

没有答案
相关问题