【问题标题】:Stripe payment hosting issue条纹支付托管问题
【发布时间】:2014-07-04 17:27:22
【问题描述】:

在 1and1 共​​享主机中发布的 ASP.MVC 4.0 应用程序上使用条带支付(测试模式)时出现以下错误:

请求“System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。 有没有人遇到过类似的错误? 我读过共享主机可能有一些事情要做,因为它使用“中等信任”配置,但很难接受条带不能用于共享主机帐户(我相信大多数网站都在共享主机中运行)

非常感谢!

【问题讨论】:

    标签: asp.net-mvc-4 shared-hosting stripe.net


    【解决方案1】:

    我也遇到过同样的问题。正在执行的检查似乎存在问题,以确保您的服务器在心脏出血问题后没有被重定向。我正在与 stripe.net nuget 库的作者合作修复它。如果您想自己修复它,请转到 Infrastructure\Requestor.cs 文件并编辑以下部分(我已将问题区域注释掉)。完成此操作后,您可以在中等信任下运行 stripe.net。

    private static string ExecuteWebRequest(WebRequest webRequest)
        {
            //var verificationCallback = new RemoteCertificateValidationCallback(StripeCertificateVerificationCallback);
    
            try
            {
                //ServicePointManager.ServerCertificateValidationCallback += verificationCallback;
    
                using (var response = webRequest.GetResponse())
                {
                    return ReadStream(response.GetResponseStream());
                }
            }
            catch (WebException webException)
            {
                if (webException.Response != null)
                {
                    var statusCode = ((HttpWebResponse)webException.Response).StatusCode;
    
                    var stripeError = new StripeError();
    
                    if(webRequest.RequestUri.ToString().Contains("oauth"))
                        stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()));
                    else
                        stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()), "error");
    
                    throw new StripeException(statusCode, stripeError, stripeError.Message);
                }
    
                throw;
            }
            finally
            {
                //ServicePointManager.ServerCertificateValidationCallback -= verificationCallback;
            }
        }
    

    【讨论】:

    • 那么,在 ssl 配置站点上发布将允许我取消注释这些行,不是吗?
    • 不,我已经尝试过了,但它也失败了。如果您使用的是 4.0 或更低版本的 .net,则此代码每次都会失败。如果您使用的是 4.5+,您实际上可以像上面一样保留所有注释并更改代码(在同一个 .cs 代码页上)。 github issue update
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 2017-09-14
    • 2022-01-22
    • 2021-08-02
    • 2020-12-30
    • 1970-01-01
    相关资源
    最近更新 更多