【问题标题】:MVC5 aspnet.identity + FLASH user authenticationMVC5 aspnet.identity + FLASH 用户认证
【发布时间】:2014-01-20 07:39:21
【问题描述】:

我正在寻找示例或想法如何使用内部帐户和外部登录(facebook 等)管理具有 MVC5 ASP.NET 身份的 FLASH 中的用户身份验证。

我知道有一些简单成员的示例,并且 FLASH 自动身份验证存在问题。但我找不到关于 MVC5 的任何信息 :(。

身份验证本身将由 ASP.NET 页面进行。我希望// 一个 FLASH 应用程序能够在进行服务器请求时使用经过身份验证的会话。

Flash 应用程序用于编辑一些数据并保存到服务器端的数据库 (MVC5),因此它必须是安全的,并且只允许某些经过身份验证的用户使用。

在放置在 MVC5 页面上的 FLASH 应用中验证用户的最安全方法是什么?

【问题讨论】:

    标签: actionscript-3 flash authentication asp.net-mvc-5


    【解决方案1】:

    到目前为止,我发现了 3 种可能的(?)方法。没有一个看起来简单明了,还没有测试过......

    1. 通过 flashvars 将一些验证/验证令牌传递给 FLASH,将其用于对不受限制的服务器方法的每个请求并手动验证它。
    2. 从 FLASH 调用 javascript 函数,用于受限通信(我希望这样的 js 调用会像正常的 web 调用一样自动验证?)。
    3. 尝试以某种方式读取 .AspNet.ApplicationCookie、ASP.NET_SessionID、__RequestVerificationToken cookie 并在发送 URLRequest 时在 Flash 中使用它们。 (不知道有没有可能)。

    这有什么意义吗?

    真的没有简单/更好的解决方案来验证从 Flash 应用程序发出的用户请求吗?(?

    编辑: Ad.2 测试通过,用户已通过身份验证:D。实际上看起来相当不错(ExternalInterface.call(...))。使用 JS 和 AJAX 进行关键的 FLASH-ASP.NET 通信。

    EDIT2:

    我只是从 Flash 调用 JavaScript,然后这个 javaScript 正在使用已经过身份验证的 AJAX 与服务器通信。使用外部接口,您还可以从 javaScript 调用 Flash 函数(收到答案时)。这样通讯就完成了。

    闪光灯:

    public static function SendToServer(_sParam:String):void
    {
       ExternalInterface.call("JAVASCRIPT_FUNCTIONNAME", "TEST", _sParam);
    }
    
    //If you want to call FLASH functions from JavaScript you need to call this in FLASH:
    
    ExternalInterface.addCallback("NAME_FOR_JAVASCTIPT_OF_FLASH_FUNCTION", FLASH_FUNCTION);
    
    //From now this FLASH_FUNCTION will be called when you call swfobj.NAME_FOR_JAVASCTIPT_OF_FLASH_FUNCTION() in JavaScript.
    

    JAVASCRIPT:

    //You need to be able to get SWF object in flash to call its registered functions
    function swfobj() {
       return $("#modafswf").get(0);
    }
    
    function JAVASCRIPT_FUNCTIONNAME(mffname, mfpvalue) {
        try {
            $.ajax({
                url: "/FlashComm/" + mffname,
                data: "{ 'param': '" + mfpvalue + "' }",
                dataType: "text",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataFilter: function (data) { return data; },
                success: function (data) {
                    swfobj().NAME_FOR_JAVASCTIPT_OF_FLASH_FUNCTION(mffname, data);
                }
            });
        } catch (ex) {}
    }
    

    最后是 ASP.NET:

    [HttpPost]
    public string TEST(string param)
    {
    string result = RESULT_ERROR;
    result = RESULT_OK;
    return result;
    }
    

    【讨论】:

    • 您好,我也在寻找使用 ASP.NET Identity 的解决方案,您有可以工作的代码示例吗?理想情况下,类似于:stackoverflow.com/questions/1729179/…
    • 嗨,我很忙,有一段时间没有访问stackoverflow。添加了一些更详细的信息。抱歉,代码格式错误,仍然无法在此处粘贴代码。
    猜你喜欢
    • 2013-12-02
    • 1970-01-01
    • 2015-05-21
    • 2014-06-16
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多