【问题标题】:Redirecting from Django App to Asp.Net webpage从 Django App 重定向到 Asp.Net 网页
【发布时间】:2019-09-25 13:43:04
【问题描述】:

我有一个 Django 应用程序,它是一种应该使用多种语言的表单。暂时,我想用英文表单发布我的应用程序,并使用其他语言按钮重定向到旧的 ASP.Net 版本的表单,同时我正在努力使我的表单成为多语言。

当我单击“西班牙语”按钮时,我确实设法让我的表单重定向到正确的位置,但是缺少 ASP.NET 表单正常运行所需的必要会话参数。

来自我的 Django 应用程序:

HTML 模板

<a href="{% url 'to_spanish' %}"><button type="button" class="btn-outline-secondary">Español</button></a>

views.py(从此页面重定向)

def to_spanish(request):
    request.session["Language"] = 'Spanish'
    # request.session["RandomID"] = ''
    # request.session["email"] = ''
    # request.session["nameidentifier"] = ''
    return HttpResponseRedirect('https://lspintake.nbn.org.il/IntakeForm')

urls.py

    urlpatterns = [
    path('', views.index, name='Auth0 homepage'),
    path('IntakeForm/1', views.personal_details_section),
    path('IntakeForm/2', views.parents_section),
    path('IntakeForm/3', views.citizenship_section),
    path('IntakeForm/4', views.idf_section),
    path('https://www.google.com', views.to_spanish, name='to_spanish'),

    ]

(我在这里使用 'google.com' 作为占位符。它仍然重定向到我在视图中放置的 url,我不确定在该位置的 urls 文件中放置什么。)

来自 ASP.NET 应用程序(我试图重定向到的内容):

在这个应用程序中,C# 中的代码行是这样使用的:

int intLanguageId = Convert.ToInt32((string)Session["Language"]);

if (Session["email"] == null || Session["nameidentifier"] == null)

如何在重定向到该应用的 to_spanish 视图中发送这些会话变量?

【问题讨论】:

    标签: c# asp.net django redirect


    【解决方案1】:

    Django 有几种存储会话数据的方法,如果您没有通过 django 设置更改它,默认的一种是数据库支持的会话存储。在这种方法中,Django只在cookies中存储了一个session key,并将session数据保存到数据库中,其他应用程序无法读取这个session数据。

    为实现您的目标,您可以尝试使用基于 cookie 的会话,如下所述:https://docs.djangoproject.com/en/2.2/topics/http/sessions/#using-cookie-based-sessions,并使用加密机制,以便您可以在其他应用程序上读取这些值。

    最后,为了让其他应用程序能够读取这些值,它应该托管在同一个域或同一个子域上。在后一种情况下,您应该配置 django 为基域编写会话。

    【讨论】:

      猜你喜欢
      • 2012-04-14
      • 2012-10-02
      • 2018-03-17
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 2011-10-01
      相关资源
      最近更新 更多