我不确定这是否是正确的论坛,因为我没有具体的开发问题 - 但是这里是:)
我正在考虑创建一个Shopify应用程序,以便在我的Shopify商店的前端使用.我一直在浏览Shopify文档,API看起来很棒 - 使用应用程序(至少是私有应用程序)启动和运行看起来很轻松.
但是我在创建应用程序后如何使用该应用程序?假设我使用单个控制器(Home - > Index)创建一个新的ASP.NET MVC站点,该站点返回一个简单地说"Hello World"的视图.(将来控制器当然会调用API,而View会用数据做出惊人的东西等)
现在我想在Shopify商店的前端使用这个神奇的网站作为应用程序.我是怎么做到这一点的?:)
我可以找到很多关于如何调用API以及如何在Shopify管理员中设置私有应用程序的教程 - 但我如何在我的前端实际使用这个应用程序?我不是在寻找有关公共应用程序和OAuth等的解释(尽管这方面的教程也很棒) - 但对于初学者来说只是一个关于创建和使用私有应用程序的教程.
任何伟大的教程/ Udemy课程/ Pluralsight视频等在那里我错过了?
多谢你们.
我希望有人可以帮我解决这个问题 - 这让我很生气!:)
我正在尝试使用tinysnake的QQ Connect提供商通过QQ Connect(OAuth 2.0)进行外部登录:https://github.com/tinysnake/microsoft-owin-security-qq
一切似乎都很好 - 我可以通过我的QQ帐户登录,然后通过相应的声明等回复到我的ExternalLoginCallBack方法.我使用这些值通过IAuthenticationManager签署用户 - 一切顺利.但是 - 当我将用户重定向到另一个页面并检查他是否已登录时 - 我从IsAuthenticated值中得到一个错误的值...而我无法读取我之前设置的任何声明.
这可能是一个简单的修复 - 但我现在看不到它:)
一些代码:
AuthConfig:
public static void ConfigureAuthentication(IAppBuilder app)
{
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Normal cookie sign in
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
AuthenticationMode = AuthenticationMode.Active
});
// QQ CONNECT
app.UseQQConnectAuthentication(
appId: "XXXXXX",
appSecret: "XXXXXXXXXXXXXXXXX");
}
Run Code Online (Sandbox Code Playgroud)
的AccountController:
//
// POST: /Account/ExternalLogin
[System.Web.Mvc.HttpPost]
[System.Web.Mvc.AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult ExternalLogin(string provider, string returnUrl)
{
// Request a redirect to the …Run Code Online (Sandbox Code Playgroud) 我遇到一个WebAPI方法的小问题,当用户调用方法的路由时,该方法会下载文件.
方法本身很简单:
public HttpResponseMessage Download(string fileId, string extension)
{
var location = ConfigurationManager.AppSettings["FilesDownloadLocation"];
var path = HttpContext.Current.Server.MapPath(location) + fileId + "." + extension;
var result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(path, FileMode.Open);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return result;
}
Run Code Online (Sandbox Code Playgroud)
该方法按预期工作 - 我第一次调用它.传输文件,我的浏览器开始下载文件.
但是 - 如果我从我自己的计算机或任何其他计算机再次调用相同的URL - 我收到一条错误消息:
该进程无法访问文件'D:\ ...\App_Data\pdfs\test-file.pdf',因为它正由另一个进程使用.
这个错误持续了大约一分钟 - 然后我可以再次下载文件 - 但只能一次 - 然后我必须等待一分钟左右,直到文件解锁.
请注意我的文件相当大(100-800 MB).
我在方法中遗漏了什么吗?它似乎流文件锁定文件一段时间或类似的东西?
谢谢 :)